import { request } from '@/api/service'
import XEUtils from 'xe-utils'

export const crudOptions = (vm) => {
  return {

    pageOptions: {
      compact: true
    },
    options: {
      tableType: 'vxe-table',
      rowKey: true, // 必须设置，true or false
      rowId: 'id',
      height: '100%', // 表格高度100%, 使用toolbar必须设置
      highlightCurrentRow: false,
      treeConfig: { // 树形数据配置
        children: 'children',
        hasChild: 'hasChildren',
        expandAll: true
      }
    },
    // rowHandle: {
    //   width: 140,
    //   view: {
    //     thin: true,
    //     text: '',
    //     disabled () {
    //       return !vm.hasPermissions('Retrieve')
    //     }
    //   },
    //   edit: {
    //     thin: true,
    //     text: '',
    //     disabled () {
    //       return !vm.hasPermissions('Update')
    //     }
    //   },
    //   remove: {
    //     thin: true,
    //     text: '',
    //     disabled () {
    //       return !vm.hasPermissions('Delete')
    //     }
    //   }
    // },
    indexRow: { // 或者直接传true,不显示title，不居中
      title: '序号',
      align: 'center',
      width: 100
    },
    viewOptions: {
      componentType: 'form'
    },
    formOptions: {
      defaultSpan: 24, // 默认的表单 span
      width: '35%'
    },
    columns: [
      {
        title: '设备归属部门',
        key: 'devices_dept',
        show: true,
        search: {
          disabled: true
        },
        type: 'cascader',
        dict: {
          cache: true,
          url: '/api/system/dept/?limit=999&status=1',
          isTree: true,
          value: 'id', // 数据字典中value字段的属性名
          label: 'name', // 数据字典中label字段的属性名
          children: 'children', // 数据字典中children字段的属性名
          getData: (url) => { // 配置此参数会覆盖全局的getRemoteDictFunc
            return request({ url: url }).then(ret => {
              return [{ id: null, name: '北京阅羊', children: XEUtils.toArrayTree(ret.data.data, { parentKey: 'parent', strict: true }) }]
              // return ret.data
            })
          }
        },
        form: {
          component: {
            props: {
              elProps: {
                clearable: true,
                showAllLevels: false, // 仅显示最后一级
                props: {
                  checkStrictly: true, // 可以不需要选到最后一级
                  emitPath: false,
                  clearable: true
                }
              }
            }
          },
          helper: {
            render () {
              return (< el-alert title="若部门不存在，则请先创建部门" type="info"/>
              )
            }
          }
        }
      },
      {
        title: 'database',
        key: 'database'
      },
      {
        title: 'table',
        key: 'table'
      }
    ],
    rowHandle: {
      custom: [
        {
          text: '自定义按钮',
          type: 'warning',
          size: 'small',
          emit: 'custom-emit-1'
        }
      ]
    }
  }
}
